/**
 * cyw.com Inc.
 * Copyright (c) 2014-2015 All Rights Reserved.
 */
package com.rainbow.bam.service.account;

import com.rainbow.bam.entity.HtAccount;
import com.rainbow.bam.entity.PaginationRequest;
import com.rainbow.bam.entity.PaginationResponse;
import com.rainbow.bam.exception.BusinessCheckException;

/**
 * 账户接口服务类
 * 
 * @author HarrisonHan
 * @version $Id: HtAccountService.java, v 0.1 2015年10月26日 上午10:10:38 HarrisonHan Exp $
 */
public interface HtAccountService {
    /**
     * 根据账户主键id获取账户信息
     * 
     * @param id 账户主键id
     * @return 账户实体信息
     */
    public HtAccount findAccountById(Long id);

    /**
     * 根据账户编码获取账户信息
     * 
     * @param key 账户编码
     * @return 账户实体信息
     */
    public HtAccount findAccountByKey(String key);

    /**
     * 用户账户信息分页查询
     * 
     * @param paginationRequest 分页查询请求对象
     * @return 分页查询结果对象
     */
    public PaginationResponse<HtAccount> findAccountsByPagination(PaginationRequest paginationRequest);

    /**
     * 添加账户
     * 
     * @param htAccount 账户实体
     */
    public void addAccount(HtAccount htAccount) throws BusinessCheckException;

    /**
     * 删除账户
     * 
     * @param accountKey 账户编码
     * @throws BusinessCheckException 
     */
    public void deleteAccount(String accountKey) throws BusinessCheckException;

    /**
     * 根据账户获取账户实体
     * 
     * @param accountName 账户
     * @return 账户实体
     */
    public HtAccount findByAccountName(String accountName);
}
